#pragma once

#include "utils.h"
#include "ChordCircle.h"
#include "MusicNote\include\MusicNoteLib.h"


struct Note2 {
	Note2();
	Note2(Keys k, Chords c, int vol, bool main);
	Chords mChord; //which chord it's a part of...?
	Keys mKey;
	int mVol; //volume
	bool mFade; //true if note is fading
	bool mMain; //true if note is part of the main chord being played
};

class CFugue
{
public:
	CFugue();
	~CFugue();

	void ClearPoints() {mPoints.clear();}
	void AddPoint(XnPoint3D point);

	void EvalPoints();
	void Play();


private:
	std::vector<XnPoint3D> mPoints;
	std::vector< std::vector<int > > mClusters; //16 clusters of notes

	Chords mChord; //The base key it's currently playing
	std::string mCd; //the string representation... maybe the only one we want!
	bool minor;

	MusicNoteLib::Player mPlayer;
};